/*****************************************************************************
 * Copyright (C) Stacy Curl. All rights reserved.                            *
 * ------------------------------------------------------------------------- *
 * The software in this package is published under the terms of the BSD      *
 * style license a copy of which has been included with this distribution in *
 * the LICENSE.txt file.                                                     *
 *****************************************************************************/
package picounit.features.configuration;

import picounit.Configuration;
import picounit.Registry;
import picounit.features.Feature;
import picounit.features.aggregate_exception.AggregatingThrower;
import picounit.features.base.FeatureRegistry;
import picounit.features.coverage_measuring.CoverageConfiguration;

public class ConfigurationFeature implements Feature {
	private final AggregatingThrower aggregatingThrower;
	private final Registry registry;
	private final CoverageConfiguration coverageConfiguration;

	public ConfigurationFeature(AggregatingThrower aggregatingThrower, Registry registry,
		CoverageConfiguration coverageConfiguration) {

		this.aggregatingThrower = aggregatingThrower;
		this.registry = registry;
		this.coverageConfiguration = coverageConfiguration;
	}

	public void addFeatures(FeatureRegistry featureRegistry) {
		registry.register(Configuration.class, 
			new DefaultConfiguration(aggregatingThrower, coverageConfiguration));
	}
}
